Various three-dimensional (3D) modeling systems use geometric models of structures with varying degrees of precision. Some systems use both a precise model (for instance, a Boundary Representation model) and an approximate mesh representation (for instance, a mesh of triangles) that is based on the precise model. The system generates the mesh representation by faceting (in other words, tessellating) the precise model. The system uses the mesh representation, rather than the precise model, for display in some situations to save memory or processing time or both. In some 3D modeling systems, display hardware is optimized to display mesh representations.
When a 3D modeling system displays a structure using a mesh representation, the display of the structure can be good in certain views and bad in other views. For example, the system can load a mesh representation of a structure with sufficient detail (that is, a sufficient display level of detail) so that it accurately represents a precise model of the structure when the user is viewing it at a 50% zoom level. But when the user zooms in to a 100% zoom level, the mesh representation can appear to be different from the precise model. A 3D modeling system may not generate a new mesh representation when the user zooms in to save memory or processing time or for other reasons.
FIG. 1A shows a mesh representation 100 of a model of a structure displayed at a first zoom level. The mesh representation 100 is associated with a display level of detail appropriate for the first zoom level. At this first zoom level, the circular holes 102 appear to be perfect circles. FIG. 1B shows the same mesh representation 100 displayed at a second zoom level. At this second zoom level, the circular holes 102 appear to have jagged edges.
A mesh representation that appears differently than expected can be alarming to a user. In particular, a user of Computer Aided Design (CAD) software may be designing precise mechanical structures that need to fit other structures or have certain structural properties. If a structure does not appear as specified in a precise model, the user can become distrustful of the entire system.
One technique for improving the appearance of meshes of triangles involves replacing flat triangles with cubic Bezier patches, a curved shape that can be divided (by faceting) into a number of smaller flat subtriangles. Each original triangle includes, for each of its vertices, a surface normal vector. The surface normal vectors are typically included with a mesh of triangles to permit advanced shading or for other purposes. However, the surface normals can be used to determine Bezier control points associated with the triangles. The triangles, including their surface normal vectors and Bezier control points, are known as “curved point-normal triangles,” “PN triangles,” or “N-patches” (hereafter “N-patches”). TRUFORM technology by ATI Technologies, currently owned by Advanced Micro Devices (AMD) of Sunnyvale, Calif., uses N-patch techniques.